package br.grupecinc.model.dao;

import br.grupecinc.conexaoBD.SistemaDAO;
import java.util.List;
import br.grupecinc.model.entity.Cadastro;
import javax.persistence.Query;

/**
 *
 * @author Kaynan
 */
public class CadastroBD {
    
    public List<Cadastro> consultaCadastro(){
        Query query = SistemaDAO.createNamedQuery("CadastroBy");
        return query.getResultList();
    }
    
    public List<Cadastro> consultaCadastro(int id){
        String sql = "SELECT cadastro FROM Cadastro cadastro where cadastro.id= :id";
        Query query = SistemaDAO.createQuery(sql);
        query.setParameter("id", id);
        return query.getResultList();
    }    
    
    public List<Cadastro> consultaCadastro(String nome){
        String sql = "SELECT cadastro FROM Cadastro cadastro where cadastro.nome like :nome order by cadastro.nome";
        Query query = SistemaDAO.createQuery(sql);
        query.setParameter("nome", "%"+nome+"%");
        return query.getResultList();
    }
    
    public String consultaQuantidadeCadastro(){
        String sql = "SELECT COUNT(cadastro) FROM Cadastro cadastro";
        Query query = SistemaDAO.createQuery(sql);        
        return query.getSingleResult().toString();
    }
    
    public boolean incluirCadastro(Cadastro cadastro){
        try {
            SistemaDAO.persistCadastro(cadastro);
            return true;
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return false;
        }
    }
    
    public boolean alterarCadastro(Cadastro cadastro){
        try {
            SistemaDAO.updateCadastro(cadastro);
            return true;
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return false;
        }
    }
    
    public boolean removerCadastro(Cadastro cadastro){
        try {
            SistemaDAO.removeCadastro(cadastro);
            return true;
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return false;
        }
        
    }
    
}
